Введение

Почему мы уделяем столько внимания эксплуатации сервисов?

SRE — Site Reliability Engineering

Site Reliability Engineering

Набор практик и приемов обеспечения бесперебойности работы информационных систем

Сбои и Надежность

Сбой

Существенное отклонение в работе сервиса от спецификации

Эвристика определения сбоя

У вас сбой, если ваш колцентр не справляется с нагрузкой

Надежность

Способность работать без сбоев

Надежность часто измеряют в проценте времени, когда не было сбоев

Надежность конкурирует за ресурсы с другими ценностями: скоростью поставки, богатсвом функционала, стоимостью разработки и т.д.

Разрыв надежности

Резкое изменение в требованиях к надежности сервиса

Необвинительная куртура и Надежность

Чем занимаются SRE?

SRE — инженерная специальность

SRE делают все то же самое, что должны делать инженеры

Программисты иногда инженеры, а иногда «переводчики» с человеческого на компьютерный

Программист-инженер может быть еще и SRE

Сферы ответственности SRE


Снятие телеметрии

  • Помощь командам в дизайне и реализации мониторинга сервисов
  • Дизайн и реализация мониторинга доступности
  • Журналирование важных событий

Сферы ответственности SRE


Алертинг

  • Выстраивание процессов доставки и реагирования на алерты
  • Анализ качества реагирование на алерты

Сферы ответственности SRE


Устранение сбоев

  • Реагирование на алерты и восстановление работоспособности системы
  • Уведомление о сбоях
  • Коордиация работ по устранению сбоев

Сферы ответственности SRE


Анализ сбоев

  • Поиск путей улучшения сервисов на основании прошлых сбоев
  • Бюджетирование простоев (бюджет ошибок)
  • Сбор статистики по сбоям

Сферы ответственности SRE


Обучение

  • Обучение разработчиков приемам по улучшению отказоустойчивости сервисов
  • Консультирование команд
  • Обучение новых членов команд

Сферы ответственности SRE


Доставка новых версий приложения

  • Внедрение безопаных подходов к доставке приложений
  • Тестирование новых версий в продакшен

Сферы ответственности SRE


DRP / DiRT

Disaster Recovery Plan / Disaster Recovery Testing

План восстановления после катастроф/Тестирование восстановления после катастроф

  • Симуляция отказов
  • Учения по восстановлению

Сферы ответственности SRE


Архитектура

  • Изучение отказоустойчивых архитектур
  • Консультирование команд разработки
  • Обучение коллег

Сферы ответственности SRE


Обеспечение вычислительными ресурсами

  • Прогнозирование потребностей
  • Мониторинг достаточности вычислительных ресурсов

Сферы ответственности SRE


Тестирование

  • Инструменты безопасного тестирования в продакшен
  • Регулярное тестирование

Сферы ответственности SRE


Инструменты для выявления причин сбоев

  • Логгирование
  • Трассировка запросов
  • Унификация сквозных идентификаторов

Сферы ответственности SRE


Конфигурирование приложений

  • Общие подходы
  • Тестирование конфигураций
  • Релиз и откат конфигураций

Сферы ответственности SRE


Общие приемы отказоустойчивости

Повторы, таймауты, выключатели, переключатели функционала и т.п.

  • Обучение разработчиков
  • Разработка общих библиотек

Сферы ответственности SRE


Публикация сервисов

  • API Gateway
  • Балансировка нагрузки
  • Управление трафиком
  • Противодействие атакам

Сферы ответственности SRE


Документирование

  • Документирование сервисов
  • Документирование дефтсвий во время сбоев

SRE — очень широкий T-shape

SRE и DevOps

DevOps = Dev + Ops

История термина